import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import { authMiddleware } from '@/lib/auth/middleware';

export async function middleware(request: NextRequest) {
  // 检查是否已经有重定向标记以防止循环重定向
  const redirectCount = parseInt(request.headers.get('x-redirect-count') || '0');
  
  if (redirectCount > 2) {
    // 如果重定向次数过多，直接进入最后请求的页面，避免循环
    return NextResponse.next();
  }
  
  // 调用认证中间件
  const response = await authMiddleware(request);
  
  // 如果是重定向响应，添加重定向计数标记
  if (response instanceof NextResponse && response.headers.has('location')) {
    response.headers.set('x-redirect-count', (redirectCount + 1).toString());
  }
  
  return response;
}

export const config = {
  matcher: [
    /*
     * 匹配所有路径，除了以下路径：
     * - api（API路由）
     * - _next/static（静态文件）
     * - _next/image（图片优化API）
     * - favicon.ico（浏览器标签页图标）
     */
    '/((?!api|_next/static|_next/image|favicon.ico).*)',
  ],
}; 